export interface ISysMaterial {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  MaterialGroupId: null;
  MaterialGroup?: ISysMaterialGroup;
  MaterialGroupName?: string | null;
  Description: string | null;
  State: '启用' | '禁用';
  UnitId: null;
  Unit?: ISysMeasureUnit;
  UnitName?: string | null;
  Remark: string | null;
}

export interface ISysMaterialGroup {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  ErpId: string | null;
  Description: string | null;
  State: '启用' | '禁用';
  CreateTime: Date | null;
  UpdateTime: Date | null;
  CreateBy: string | null;
  UpdateBy: string | null;
  Level: number;
  Remark: string | null;
  ParentId: null;
  Parent?: ISysMaterialGroup;
  IsKeyAttribute?: boolean; // 是否为关键属性
}

export interface ISysMeasureUnit {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  MeasureUnitGroupId: null;
  MeasureUnitGroup?: ISysMeasureUnitGroup;
  ErpId: string | null;
  Description: string | null;
  State: '启用' | '禁用';
  Level: number;
  CreateTime: Date | null;
  UpdateTime: Date | null;
  CreateBy: string | null;
  UpdateBy: string | null;
  Remark: string | null;
  ParentId: null;
  Parent?: ISysMeasureUnit;
}

export interface ISysMeasureUnitGroup {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  Level: number;
  ErpId: string | null;
  Description: string | null;
  State: '启用' | '禁用';
  CreateTime: Date | null;
  UpdateTime: Date | null;
  Remark: string | null;
  CreateBy: string | null;
  UpdateBy: string | null;
  ParentId: null;
  Parent?: ISysMeasureUnitGroup;
}

export interface ISysMaterialQuery {
  Code?: string;
  Limit: number;
  Name?: string;
  Page: number;
  State?: '启用' | '禁用' | '';
  ErpId?: string;
  ErpName?: string;
  ErpModel?: string;
}


export interface ISysNotification {
  ID?: string | null;
  Title: string | null;
  Content: string | null;
  RouteId: null;
  Route?: ISysBillRoute;
  CategoryId: null;
  Category?: ISysNotificationCategory;
  BusinessType: string | null;
  BusinessId: string | null;
  SenderName: string | null;
  ReceiverName: string | null;
  Status: '未读' | '已读';
  Priority: '低' | '普通' | '高' | '紧急';
  IsTop: boolean;
  SendTime: Date;
  ReadTime: Date | null;
}

export interface ISysBillRoute {
  ID?: string | null;
  Name: string | null;
  CodeType: string | null;
  PcRoute: string | null;
  MobileRoute: string | null;
}

export interface ISysNotificationCategory {
  ID?: string | null;
  Name: string | null;
  Code: string | null;
  Description: string | null;
  Icon: string | null;
  EnableInternalMessage: boolean;
  EnableSms: boolean;
  EnableEmail: boolean;
  EnableAppPush: boolean;
  EnableWechatPush: boolean;
  EnableDingTalkPush: boolean;
  DefaultPriority: '低' | '普通' | '高' | '紧急';
  IsEnabled: boolean;
  SortOrder: number;
  ParentId: null;
  Parent?: ISysNotificationCategory;
}

export interface ISysMaterialGroupQuery {
  Limit: number;
  MaterialId: string;
  Page: number;
}